home *** CD-ROM | disk | FTP | other *** search
/ I Segreti Di Madame X 2 / I Segreti Di Madame X 2.iso / setup.mst < prev    next >
Text File  |  1995-10-30  |  9KB  |  251 lines

  1. '$INCLUDE 'setupapi.inc'
  2. '$INCLUDE 'msdetect.inc'
  3.  
  4. CONST WELCOME        = 100
  5. CONST ASKQUIT        = 200
  6. CONST DESTPATH        = 300
  7. CONST EXITFAILURE    = 400
  8. CONST EXITQUIT        = 600
  9. CONST BADPATH        = 6400
  10. CONST EXITSUCCESS    = 700
  11. CONST OPTIONS        = 800
  12. CONST APPHELP        = 900
  13. CONST VFWDIALOG         = 1000
  14. CONST SMALLWIN        = 2200
  15. CONST RESTART           = 2600
  16. CONST RESTARTII         = 2700
  17.  
  18. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  19. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  20. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  21. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  22. DECLARE SUB Reboot LIB "iniupd.dll"
  23.  
  24. INIT:
  25.     CUIDLL$    = "mscuistf.dll"
  26.     DEST$      = "C:\DIGIDREM"
  27.     GROUP$     = "Interactive DigiDreams"
  28.         ITEM$      = "I segreti di Madame X parte 2"
  29.         PROG$      = "dreamspl.exe"
  30.         PROGINI$   = "dreamspl.ini"
  31.         ININAME$   = "madx2.scr"
  32.         INICRC$    = "1855033132"
  33.         MajorVer%  = GetWindowsMajorVersion()
  34.         MinorVer%  = GetWindowsMinorVersion()
  35.         Processor% = GetProcessorType()
  36.  
  37.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  38.         i% = DoMsgBox ("E' richiesto Microsoft Windows versione 3.10 o superiore per questo software. Aggiornate la vostra versione di Windows.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  39.         END
  40.     END IF
  41.  
  42.     'Prevents installation on 286
  43.     IF Processor% < 3 THEN
  44.         i% = DoMsgBox ("Video per Windows richiede un processore 386 o superiore.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  45.         END
  46.     END IF
  47.  
  48.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  49.     IF OnWindowsNT() THEN
  50.         OnNT$ = "TRUE"
  51.         WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  52.         IF WowVersion$ = "" THEN
  53.             i% = DoMsgBox ("Video per Windows non funziona con Windows NT 3.1. Per favore aggiornate la vostra versione di Windows NT.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  54.             END
  55.         END IF
  56.     END IF
  57.  
  58.         SetBitmap CUIDLL$, 1
  59.         SetTitle "Installazione di Interactive DigiDreams"
  60.  
  61. WELCOME:
  62.     '' Visualizza una dialog di benvenuto
  63.     sz$ = UIStartDlg (CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         UIPop 1
  68.         GOSUB ASKQUIT
  69.         GOTO WELCOME
  70.     ENDIF
  71.  
  72. DESTPATH:
  73.     '' Chiede il nome della directory in cui copiare tutti i files del programma
  74.     SetSymbolValue "EditTextIn", DEST$
  75.     sz$ = UIStartDlg (CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  76.     IF sz$ = "CONTINUE" THEN
  77.                DEST$ = GetSymbolValue( "EditTextOut")
  78.         UIPop 1
  79.     ELSE
  80.         UIPop 1
  81.         GOSUB ASKQUIT
  82.         GOTO DESTPATH
  83.     ENDIF
  84.  
  85.     IF IsDirWritable (DEST$) = 0 THEN
  86.         GOSUB BADPATH
  87.         GOTO DESTPATH
  88.     END IF
  89.  
  90. ASKVFW:
  91.         sz$ = UIStartDlg (CUIDLL$, VFWDIALOG, "FInfoDlgProc", APPHELP, HELPPROC$)
  92.     IF sz$ = "CONTINUE" THEN
  93.         VFW$ = "TRUE"
  94.     END IF
  95.         UIPop 1
  96.  
  97. INSTALL:
  98.         WinDir$ = GetWindowsDir ()
  99.         WinSysDir$ = GetWindowsSysDir ()
  100.     SrcDir$ = GetSymbolValue ("STF_SRCDIR")
  101.         VfwSrc$ = GetSymbolValue ("STF_SRCDIR")+"RUNTIME\"
  102.  
  103.     CreateDir DEST$, cmoNone
  104.  
  105.         ReadInfFile MakePath (SrcDir$, "SETUP.INF")
  106.     AddSectionFilesToCopyList "CDROM", SrcDir$, DEST$
  107.  
  108.     IF VFW$ = "TRUE" THEN
  109.                 AddSectionFilesToCopyList "remove", VfwSrc$, WinSysDir$
  110.  
  111.                 IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN                       'These files not necessary on Windows NT
  112.                         AddSectionFilesToCopyList "MPlayer", VfwSrc$, WinDir$
  113.                         AddSectionFilesToCopyList "OLE2", VfwSrc$, WinSysDir$
  114.                 END IF
  115.                 AddSectionFilesToCopyList "VfW Runtime", VfwSrc$, WinSysDir$
  116.                 AddSectionFilesToCopyList "ACM Drivers", VfwSrc$, WinSysDir$
  117.                 AddSectionFilesToCopyList "AVICodecs", VfwSrc$, WinSysDir$
  118.                 IF OnNT$ = "TRUE" THEN
  119.                         AddSectionFilesToCopyList "NT MSVideo", VfwSrc$, WinSys32Dir$
  120.                 ENDIF
  121.     END IF
  122.  
  123.     SizeReq& = GetCopyListCost ("","", "")
  124.     IF SizeReq& <> 0 THEN
  125.         GOSUB SMALLWIN
  126.         END
  127.     END IF
  128.  
  129.         SetRestartDir GetWindowsDir()
  130.     CopyFilesInCopyList
  131.  
  132.     IF VFW$ = "TRUE" THEN
  133.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  134.             IF VflatdPresent() = 0 THEN
  135.                 CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  136.             END IF
  137.         END IF
  138.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  139.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  140.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  141.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  142.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  143.         I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  144.         IF I% = 0  THEN
  145.             CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  146.         END IF
  147.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  148.         CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  149.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  150.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  151.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  152.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  153.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  154.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  155.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  156.  
  157.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  158.             Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  159.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  160.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  161.  
  162.             CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  163.         END IF
  164.  
  165. ''                Run ("profdisp.exe")
  166.         END IF
  167.  
  168.         Ini$ = MakePath (DEST$, PROGINI$)
  169.         CreateIniKeyValue Ini$, "System", "CurCDDrive", MID$ (SrcDir$, 1, 2), cmoOverwrite
  170.  
  171.         AppIni$ = MakePath (DEST$, ININAME$)
  172.  
  173.         CreateProgmanGroup GROUP$, "", cmoNone
  174.         ShowProgmanGroup  GROUP$, 1, cmoNone
  175.         CreateProgmanItem GROUP$, ITEM$, MakePath (DEST$, PROG$ + " " + AppIni$ + " " + INICRC$), "", cmoOverwrite
  176.  
  177.         IF VFW$ = "TRUE" THEN
  178.                 '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  179.         '' else, it gives the user the choice
  180.         RESTRT% = RestartListEmpty ()
  181.                 Exe$ = WinDir$ + "\_msrstrt.exe"
  182.                 Batch$ = WinDir$ + "\_mssetup.bat"
  183.         empty$ = ""
  184. RESTART:
  185.                 sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  186.                 IF sz$ = "CONTINUE" THEN
  187.                         I% = ExitWindowsExec (Exe$, empty$)
  188.                         IF I% = 0 THEN
  189.                                 GOTO RESTART
  190.                         ELSE
  191.                                 END
  192.                         ENDIF
  193.                 ELSEIF sz$ = "EXIT" THEN
  194.                         UIPopAll
  195.                         END
  196.                 ELSEIF sz$ = "REACTIVATE" THEN
  197.                         GOTO RESTART
  198.                 ELSE
  199.                         UIPop 1
  200.                 END IF
  201.         ELSE
  202.                 sz$ = UIStartDlg (CUIDLL$, EXITSUCCESS, "FInfo0DlgProc", 0, "")
  203.                 UIPop 1
  204.         END IF
  205.  
  206.     END
  207.  
  208. ASKQUIT:
  209.     sz$ = UIStartDlg (CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  210.  
  211.     IF sz$ = "EXIT" THEN
  212.         UIPopAll
  213.         ERROR STFQUIT
  214.     ELSEIF sz$ = "REACTIVATE" THEN
  215.         GOTO ASKQUIT
  216.     ELSE
  217.         UIPop 1
  218.     END IF
  219.     RETURN
  220.  
  221. BADPATH:
  222.     UIPop 1
  223.     sz$ = UIStartDlg (CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  224.     IF sz$ = "REACTIVATE" THEN
  225.         GOTO BADPATH
  226.     END IF
  227.     UIPop 1
  228.     RETURN
  229.  
  230. SMALLWIN:
  231.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  232.     IF sz$ = "REACTIVATE" THEN
  233.         GOTO SMALLWIN
  234.     END IF
  235.     UIPop 1
  236.     RETURN
  237.  
  238. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  239.     IF szDir$ = "" THEN
  240.         MakePath = szFile$
  241.     ELSEIF szFile$ = "" THEN
  242.         MakePath = szDir$
  243.     ELSEIF MID$ (szDir$, LEN (szDir$), 1) = "\" THEN
  244.         MakePath = szDir$+szFile$
  245.     ELSE
  246.         MakePath = szDir$+"\"+szFile$
  247.     END IF
  248. END FUNCTION
  249.  
  250. QUIT:
  251.